Metadata-configurable systems and methods for network services

ABSTRACT

In some embodiments, the presentation manager is configured to provide an interface requesting information regarding a proposal from a digital device over a network and receive the information from the digital device. The business object manager is configured to instantiate a business object based on the received information and store the instantiated business object within a data structure residing in a computer readable medium. The business rule manager is configured to generate a business rule associated with the business object, the business rule comprising instructions to perform an operation, the instructions being conditional based on the instantiated business object. The metadata manager is configured to generate metadata associated with the instantiated business object, store the generated metadata in the computer readable medium, perform the operation based on the business rule and the generated metadata, and instruct the presentation manager to provide a second interface indicating a status of the proposal.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. patent application Ser. No.14/573,999, filed Dec. 17, 2014, entitled “Metadata-Configurable Systemsand Methods for Network Services,” which is a continuation of U.S.patent application Ser. No. 13/009,811, filed Jan. 19, 2011, entitled“Metadata-Configurable Systems and Methods for Network Services,” whichclaims priority to U.S. Provisional Patent Application Ser. No.61/296,892, filed Jan. 21, 2010, and entitled “System of MetadataConfigurable Web-Based Software for Collection and Management of InboundCommunications,” which are hereby incorporated by reference herein.

BACKGROUND

1. Field of the Invention

The present invention generally relates to metadata systems. Moreparticularly, the invention relates to metadata-configurable systems andmethods for network services.

2. Description of Related Art

Traditional software systems are typically created for a dedicatedpurpose with limited optional behaviors and features. Major feature andbehavior changes to traditional software systems require significantdevelopment efforts and the creation of new versions. Systems that arecreated to be flexible require extensive custom development work to meetcustom requirements.

Over the last 15 years, large software systems have evolved to allow forthe creation and modification of major feature and behavior changesthrough configuration. By and large, these software systems areclient/server, desktop/server, or mainframe applications that areinstalled on-premises in a data center or IT facility.

Web-based software systems and applications, however, are replacing theon-premises software system. The main attributes of web-based softwaresystems are that the software is accessible via a web browser anywherethe Internet. Server portions are hosted in a data center managed by (oron the behalf of) a provider of the software system.

There are generally two forms of web-based software systems:

-   -   Web-based software systems where the server part of the system        is on a computer system dedicated to the users of a single        entity (such as corporations and institutions). Software systems        provided in this manner are called “managed service provider”        systems or MSP systems.    -   Web-based software systems where the server part of the system        is on systems that may be shared by users of many different        entities (such as corporations and institutions). Software        systems provided in this manner are currently called “software        as a service” systems (“SaaS systems”) and may function as        “application service provider” systems (“ASP systems”).

Since MSP systems provide a separate server installation for everyentity using the software system, it is generally similar to anon-premises software system with respect to architecture. To provide anupgrade, both on-premises systems and MSP systems require a process forreleasing new software for every entity using the software system. Sincea SaaS system is sharing a server across multiple entities using thesoftware system, when a SaaS system is updated, everyone using the SaaSsystem gets the benefit of the update. A SaaS system, however, istraditionally not as configurable as an on-premises software system.

SUMMARY OF THE INVENTION

Metadata-configurable systems and methods for network services aredisclosed. In some embodiments, a system comprises a presentationmanager, a business object manager, a business rule manager, and ametadata manager. The presentation manager may be configured to providean interface requesting information regarding a proposal from a digitaldevice over a network and to receive the information from the digitaldevice. The business object manager may be configured to instantiate abusiness object based on the received information and to store theinstantiated business object within a data structure residing in acomputer readable medium. The business rule manager may be configured togenerate a business rule associated with the business object, thebusiness rule comprising instructions to perform an operation, theinstructions being conditional based on the instantiated businessobject. The metadata manager may be configured to generate metadataassociated with the instantiated business object, to store the generatedmetadata in the computer readable medium, to perform the operation basedon the business rule and the generated metadata, and to instruct thepresentation manager to provide a second interface to the digital deviceindicating a status of the proposal.

The business rule manager may generate the business rule before thepresentation manager provides the interface requesting informationregarding the proposal from the digital device over the network. Themetadata manager configured to instruct the presentation manager toprovide the second interface to the digital device indicating the statusof the proposal may comprise the metadata manger configured to instructthe presentation manager to provide the second interface to requestadditional information. Further, the business object manager may befurther configured to instantiate another business object based on theadditional information and the metadata manager may be furtherconfigured to generate other metadata associated with the otherinstantiated business object, to perform another operation based on theother business rule and the other metadata, and to instruct thepresentation manager to provide a third interface to the digital deviceindicating another status of the proposal.

The metadata manager may be further configured to contact a seconddigital device to receive approval of the proposal based on anotherbusiness rule generated by the business rule manager and the metadata.In some embodiments, the metadata manager may be configured to instructthe presentation manager to provide the second interface to the digitaldevice indicating the status of the proposal comprises the secondinterface displaying a message that the proposal is denied, accepted, orpending.

The presentation manager may be further configured to generate a secondinterface requesting information to create a report regarding theproposal and receiving proposal information to create the report.Further, the business object manager may be further configured to querythe data structure based on the received information to create thereport and retrieve proposal information. The metadata manager may alsobe further configured to direct the presentation manager to generate athird interface and create the report associated with the proposalinformation. The report may depict a summary of the status of theproposal as well as other information regarding other reports that mayhave been retrieved by the query of the business object manager.Moreover, the business object manager may be further configured to findthe business object using a conditional query and query contents of thebusiness object found or specified. Those skilled in the art willappreciate that the business object manager may use a conditional queryto find or specify any number of business objects. Similarly, thoseskilled in the art will appreciate that the business object manager mayquery the content of any number or business objects found or specified.

The data structure may be a relational database.

In some embodiments, a method comprises providing an interfacerequesting information regarding a proposal from a digital device over anetwork, receiving the information from the digital device,instantiating a business object based on the received information,storing the instantiated business object within a data structureresiding in a computer readable medium, generating a business ruleassociated with the business object, the business rule comprisinginstructions to perform an operation, the instructions being conditionalbased on the instantiated business object, generating metadataassociated with the instantiated business object, storing the generatedmetadata in the computer readable medium, performing the operation basedon the business rule and the generated metadata, and providing a secondinterface to the digital device indicating a status of the proposal.

In various embodiments, a computer readable medium may compriseexecutable instructions. The executable instructions may be executableby a processor to perform a method. The method may comprise providing aninterface requesting information regarding a proposal from a digitaldevice over a network, receiving the information from the digitaldevice, instantiating a business object based on the receivedinformation, storing the instantiated business object within a datastructure residing in a computer readable medium, generating a businessrule associated with the business object, the business rule comprisinginstructions to perform an operation, the instructions being conditionalbased on the instantiated business object, generating metadataassociated with the instantiated business object, storing the generatedmetadata in the computer readable medium, performing the operation basedon the business rule and the generated metadata, and providing a secondinterface to the digital device indicating a status of the proposal.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram of an environment in which embodiments of thepresent invention may be practiced.

FIG. 2 is an exemplary conceptual diagram of the relationships betweenmetadata, server processes, and a user web browser in some embodiments.

FIG. 3 is a block diagram of an exemplary business server in someembodiments.

FIG. 4 is an exemplary diagram of the relationships among the businessobject manager, metadata manager, inbound communications manager,business rule manager, presentation manager, the relational databasesystem, data adapter, the web server, and the web browser in someembodiments.

FIG. 5 is an exemplary screen shot of a report generate graphical userinterface that illustrates how a user may create ad-hoc data reports thesystem in some embodiments.

FIG. 6 is an exemplary screen shot of a report viewing user interface insome embodiments.

FIG. 7 is a flow diagram of a metadata configurable system in someembodiments.

FIG. 8 is an exemplary screen shot of a user login interface in someembodiments.

FIG. 9 is an exemplary screen shot of a template selection interface insome embodiments.

FIG. 10 is an exemplary screen shot of a preliminary questions interfacein some embodiments.

FIG. 11A is an exemplary screen shot of a response to an answer in apreliminary questions interface in some embodiments.

FIG. 11B is another exemplary screen shot of a response to an answer ina preliminary questions interface in some embodiments.

FIG. 12 is an exemplary screen shot for selection of a local client sitein some embodiments.

FIG. 13 is an exemplary screen shot for determining a local client sitein some embodiments.

FIG. 14 is an exemplary screen shot of a demographic interface in someembodiments.

FIG. 15 is an exemplary screen shot of a mailbox interface in someembodiments.

FIG. 16 is an exemplary screen shot of tax information interface in someembodiments.

FIG. 17 is an exemplary screen shot of a proposal list interface in someembodiments.

FIG. 18 is an exemplary screen shot of a proposal summary interface insome embodiments.

FIG. 19 is an exemplary screen shot of a proposal summary reportinterface in some embodiments.

FIG. 20 is an exemplary screen shot of a custom report interface in someembodiments.

FIG. 21 is an exemplary digital device in some embodiments.

DETAILED DESCRIPTION OF THE INVENTION

In general, systems and methods described herein may allow forcollection and management of information as well as the processes forrouting, reviewing, making decisions about, automatically responding to,fulfilling, and reporting about inbound communications. For example, ametadata configurable web-based software system may be configured tocollect data, manage data, present data, provide interactive page-flow,and provide work-flow for collection and management of and automatedresponse to inbound communications.

In various embodiments, systems and methods described herein may performthe following functions, including but not limited to:

-   -   arbitrarily complex data collection as described by metadata        definitions for user interface, page-flow, and business objects;    -   arbitrarily complex hierarchical information storage, retrieval,        and manipulation using a relational database system as described        by business object metadata definitions;    -   arbitrarily complex user interface layout and presentation as        described by user interface metadata definitions; and/or    -   arbitrarily complex actions, services, processes, and work-flow        as described by business process metadata definitions.

Systems and methods described herein may track changes and updates tometadata so that the specific versions and changes of metadata on anydeployment of the system and/or functions may be identified and effectsof upgrades and installations of new metadata can be understood. In oneexample, tracked changes and updates allow for installation of baseversions of metadata configuration information, allow for changes to bemade to different deployments of that metadata, and provide a frameworkfor understanding the effects of the changes on each deployment. In someembodiments, different services associated with different metadata maybe provided for different clients. Similarly, different updates andmodifications may be provided based on individual client needs. Thesechanges may be tracked and used to understand the effects of thechanges. In some embodiments, reports may be generated to create ad-hocchart data reports using business object information.

In various embodiments, the metadata language may be XML. Those skilledin the art will appreciate that in various embodiments there are manydifferent languages (e.g., JSON, SOX, or YAML) that may be used tospecify metadata.

In various embodiments, systems and methods described herein mayinclude, but not be limited to, a highly configurable SaaS that does nothave the configurability constraints of a traditional SaaS. In additionto being embodied as a SaaS, systems and methods described herein may beembodied as an on-premises system and as an MSP system.

FIG. 1 is a diagram of an environment 100 in which embodiments of thepresent invention may be practiced. The environment 100 comprises abusiness server 102, a system provider 104, and a user device 106 incommunication over a communication network 108. The business server 102,system provider 104, and the user device 106 may be digital devices orsystems comprising one or more digital devices. A digital device is anydevice that has a processor and memory. Examples of digital devicesinclude, but is not limited to, a computer, system, laptop, digitalphone, smart phone (e.g., iPhone or M1), netbook, personal digitalassistants, cable box, digital recorder (e.g., Tivo DVR), game console(e.g., Xbox), or the like. Digital devices are further discussed withregard to FIG. 21.

In various embodiments, a user may interact with services provided bythe system provider 104. The services may include providing the userwith a variety of interfaces (e.g., graphical user interfaces such asweb pages). The user may provide information within the interfaces and,after submission of the information, the services may generate anotherinterface, request additional information, and/or make determinationsbased on rules and the provided information. For example, the user mayutilize the interface to make a submission for a proposal or grant. Afirst interface may request information such as the type of request,identification information, and tax code. Once submitted, the servicesmay provide an additional interface based in part on the responses fromthe consumer. Alternately or additionally, the services may process theinformation from the consumer and make determinations on the proposal(e.g., deny, accept, request approval from others, and/or update statuschart regarding all proposals received.)

The services may be metadata-based. For example, metadata that describesobjects including responses from a user may be received, scanned, and/orstored within a relational database. Metadata rules may be applied toprovide content, request additional information, perform authentication,or any other service based on some or all data provided by the user.Those skilled in the art will appreciate that, in some embodiments, themetadata system may allow for a highly configurable system withoutrequiring access to underlying software code.

A business server 102 is a digital device that may provide, control,and/or allow others to host services that send and receive informationover the communication network 108. In some examples, the businessserver 102 is a corporation which allows a user of user device 108 tointeract with services over the communication network 108. The servicesmay include, but not be limited to, an application, web page,interactivity, interface, or the like. In one example, the user mayaccess an application via the user device 106 to provide information orsubmit a proposal. Those skilled in the art will appreciate that theservices may perform any number of functions and may interact with oneor more other services that are inaccessible to the user and/or providedby other digital devices. Although business server 102 is referenced asa “business” for purposes of description in FIG. 1, those skilled in theart will appreciate that the business server 102 may be any digitaldevice regardless of the nature of the entity. For example, the“business” may be a person (e.g., a philanthropic individual), nonprofitcorporation, organization, community, club, association, committee,board of directors, or any other entity or group of entities.

A system provider 104 is a digital device that provides and/or allowsaccess to one or more services, web-based applications, databases,and/or systems. In various embodiments, a client associated with thebusiness server 102 may enter into an agreement with a representativeassociated with the system provider 104 to provide one or more services.For example, the system provider 104 may provide software as a server(i.e., SaaS or sometimes referred to as “software on demand”). Invarious embodiments, one or more applications or support forapplications (e.g., metadata and storage) may be hosted by the systemprovider 104 on behalf of the business server 102. Subsequently, theuser of the user device 106 may interact with the one or moreapplications on the system provider 104. In some embodiments, the systemprovider 104 may distribute one or more applications, web-basedapplications, databases, and/or systems to the business server 102.Subsequently, the user of the user device 106 may interact with the oneor more applications on the business server 102.

In one example, a provider associated with the system provider 104 maylicense services (e.g., one or more applications) to a client (i.e.,associated with business server 102) and/or a user (i.e., associatedwith the user device 106) as a service on demand, through asubscription, in a “pay-as-you-go” model, or at no charge.

The user device 106 is any digital device which allows a user tointeract with services hosted by and/or provided by the system provider104. In some embodiments, the user device 106 is any digital device witha web browser or other application that allows the user to send and/orreceive information over the communication network 108.

The communication network 108 is any network that is allows differentdigital devices to communicate. In some examples, the communicationnetwork 108 may comprise a LAN and/or WAN. Further the communicationnetwork 108 may comprise any number of networks. In some embodiments,the communication network 108 is the Internet.

Those skilled in the art will appreciate that code for services such asan application may be “in the cloud” thereby allowing a user to interactwith the application via the communication network 108. In someembodiments, one or more components of the application code may bestored within RAM and/or longer term memory within the business server102, the system provider 104, and/or the user device 106.

Although only a single business server 102, system provider 104, userdevice 106, and communication network 108 are depicted in FIG. 1, thoseskilled in the art will appreciate that there may be any number ofbusiness servers 102, system providers 104, user devices 106, andcommunication networks 108.

Those skilled in the art will appreciate that different versions,modifications, and/or updates of applications, web-based applications,databases, and/or systems may be distributed or hosted by the systemprovider 104 for different business servers 102.

FIG. 2 is an exemplary conceptual diagram 200 of the relationshipsbetween metadata, server processes, and a user web browser in someembodiments. Metadata is data conveying information about data. In oneexample, metadata may describe a format, name, size, mode ofacquisition, field types, title, subject, and author.

In various embodiments of systems and methods described herein, metadatamay comprise definitions associated with data. Those skilled in the artwill appreciate that metadata may be conceptually divided in any numberof ways. For convenience, metadata definitions may be described asrelating to a business object, rule, and user interface metadatadefinitions 204 as well as used to control security and/or functionality206. For example, metadata, such as a Global Unique Identifier (GUID) ortype (see metadata definitions 204), may describe or define a businessobject, a rule, or a user interface. Metadata may also describe ordefine a user or role, a name, view, permissions, or groups (seemetadata definitions 206).

In various embodiments, a metadata and data storage 202 may storebusiness object and user interface definitions: GUID, Type 204 as wellas security metadata definitions: (user/role name, view/permissions),groups 206. The metadata and data storage 202 may also store data thatis associated with the metadata. The storage may be any storage. In oneexample, the storage is a hard drive, solid state drive, or any othercomputer readable medium. Those skilled in the art will appreciate thatthe metadata and data storage 202 may include any number of storagedevices. The storage devices may be within or in communication with anynumber of digital devices. In one example, the metadata and data storage202 may be in communication with and/or within the business server 102and/or the system provider 104. Metadata definitions may be in XML.Those skilled in the art will appreciate that the metadata definitionsmay be in any language and/or in any format.

In various embodiments, a metadata manager, business rule manager,inbound communications manager; server-side scripts/logic 208 may readthe metadata definitions, create, and/or provide one or more datastructures, such as database tables, that can be used to store, read,write, and/or query data objects described by the metadata. When themetadata definitions are modified and pushed to the metadata and datastorage 202, the data structures may be updated. As a result, anapplication execution layer may read the new definitions and manifestnew behavior and information models without changes to code.

In various embodiments, at least some metadata definitions have a globalunique identifier of the definition (hereinafter referred to as a GUID),a platform version, an internal version, an external version, a type, aname, a view, an instance identifier, attribute, and/or field. The GUIDis a global unique identifier of the definition. In some embodiments,the GUID will not change for a metadata definition. Those skilled in theart will appreciate that, in some embodiments, metadata definitions mayhave an identifier that is not necessarily unique or not necessarilyglobally unique.

A platform version is a version identifier associated with releases ofan application development platform. For example, the platform versionfor a first release may be “1.” The platform version may allow trackingof a specific release (e.g., tracking of a specific release inpossession of a customer). Further, the platform version may allow foridentification and tracking of base metadata definitions (e.g., beforeor between changes to the definitions). The version of the platform maybe independent of the version of the application or what the customersmay see with respect to version information.

An internal version is a version identifier that may be changed (e.g.,increased) when a metadata definition is modified (e.g., as part of asub-release of the application development platform). For example, asub-release of an application development platform may be due to a bugfix, an enhancement, or a new service within the platform. In someembodiments, a sub-release may not be considered a new version of theplatform. The internal version may allow for tracking released changesthat may be minor, but can affect base definitions. In one example,released changes in reference applications or reference metadata maychange the internal version.

An external version is a version identifier that may be changed (e.g.,increased) whenever a customer, 3^(rd) party, professional services, orengineering on behalf of a specific customer modifies a metadatadefinition. In one example, the external version may be used to trackcustomizations for a specific customer.

A metadata type may be the type of object or entity defined by themetadata definition.

A name is a mechanism that may allow for providing different access andpermission specifications for different objects from the same metadatatype. In some embodiments, the name, type, and the view (describedherein), provide a specification of a metadata definition of aparticular type that has a specific view, permission, and/or rolespecification (e.g., security features). In one example, thespecification of a metadata definition may specify access, permission,security, and visibility for the metadata definition as well as themetadata and data associated with the definition. The name may bereferred to as a user or role name.

Different document security levels may be defined with a documentmetadata type that defines attributes and behaviors of a document and anassociated name. The document security levels may include, for exampleClassifiedDocument, PrivateDocument, and PublicDocument. All three ofthese metadata definition names may be for metadata of type Document,but have different permissions associated with them.

A view may specify access, permission, security, and visibilityinformation for the metadata. The view may also specify data associatedwith the definition. In some embodiments, the view may be a detailedaccess control list for access and visibility. The view may beassociated with authorization metadata specifications discussed herein.

An instance identifier (e.g., instance ID) is an identifier of aninstance of an object created from a metadata definition. The ID may beunique with respect to the metadata definition GUID, but may notnecessarily be globally unique. In some embodiments, the metadatadefinition GUID and the instance ID may be globally unique when usedtogether.

Attributes may specify functional uses, behavior, and use properties ofthe objects that the metadata defines. In one example, metadata maycomprise an attribute that specifies document and media objects as partof the object the metadata defines. The metadata definition and the datamanagement defined by the metadata may comprise the following functionswith respect to the document/media object:

-   -   Attachment of multiple versions of the document/media object    -   Removal of any version or all versions of the document/media        object    -   Viewing of supported document/media object types    -   For types where it is possible, invocation of an editor for the        supported document/media object types with the following        abilities:        -   Save and replace        -   Save and version

The document/media object may allow the metadata specification ofdocument and media object types. Viewer and editor applications maysupport the types. The following include some, not all, exemplary types:

-   -   Word Document    -   Excel Spreadsheet    -   MPEG 3    -   MPEG 4    -   JPEG    -   GIF    -   Windows Bitmap    -   Windows Media Audio    -   Windows Media Video    -   PDF

In some embodiments, the following metadata information may be tracked:

-   -   Created Date—the date and time when the object was created.    -   Created By—the ID of the User who created the object.    -   Last Modified By—the ID of the User who last modified the        object.    -   Last Modified Date by User—the date and time when the object was        last modified by a user.    -   Last Modified—the date and time when the object was last        modified by a user or process, such as a trigger.

Fields may contain data that is part of an object the metadata defines.Default or initial values for fields can be defined in the metadatadefinition.

In various embodiments, there may be three types of relationshipssupported by the metadata definitions that have ramifications withrespect to the use, function, and storage in a data structure. Thesethree types of relationships may comprise a contain relationship, areference relationship, and an inheritance relationship. The containrelationship may comprise a relationship between metadata definitionswhere one metadata definition completely contains another metadatadefinition. In one example, a specific instance may contain data, whichthe metadata definition defines. In some embodiments, the data may onlybe accessed through the containing metadata definition. In one example,if more than one of the contained object type can be contained, then alist of objects may be contained, the list may be traversed, the numberof items in the list may be queried, and objects may be added or removedfrom the list.

For example, an employee metadata definition may be defined to containan address metadata definition. When an employee object is instantiated(corresponding to a row in an employee object table in the database),the employee object contains an address object (corresponding to a rowin an address object table). Since the relationship defined betweenemployee metadata and address metadata is a contain relationship wherethe employee object contains the address object, the specific addressobject for this employee may only be accessible through the employeeobject via a reference to the employee object and a change to the valueof the address object (such as a new street address) will only affectthe employee object containing the specific address object.

The reference relationship may be similar to the contain relationship inthat one object may reference another, except that other objects mayreference the specific object being referenced. In one example, if thereferenced object is modified, all objects referencing the referencedobject may see the change. When an object that effectively appears to becontained is actually referenced, the object may be found without goingthrough the referencing object. Those skilled in the art will appreciatethat either direction of the reference may be traversed. In someembodiments, a parent and child designation with the relationship can bedefined.

For example, the reference cardinality may be one to one, one to many,many to one, or many to many, with respect to the objects, regardless ofwhether or not a parent/child designation is made. If there is more thanone object on one side of the relationship, the list of objects may betraversed, the number of objects may be queried, and objects may beadded or removed from the list.

In one example, there may be many committees in an organization and anemployee may be a member of more than one committee. This informationmodel may require a many to many parent/child reference relationshipwhere the committee is the parent and the employee is the child.

The inheritance relationship may provide a method to specialize ametadata definition, and hence objects, without modifying the underlyingdefinition and without affecting applications that are using theunderlying definition directly. If a new definition inherits an olderdefinition, the new definition may have the attributes, information, andactions associated with the old definition, except for specific changesand new additions specified in the new definition. Inheritancerelationships may be one to one with a “well defined” parent or basedefinition as well as a child or sub-definition that specifies the baseor parent definition. A metadata definition may inherit from anothermetadata definition that has inherited from yet another metadatadefinition, allowing for arbitrary levels of inheritance.

For example, a regional manager may have both direct individualemployees and manager employees, a region designation that containsmultiple branch offices, and a regional management role. Othermanagement behavior and data needed by all managers may be contained inthe manager object. The regional manager object may gain all behaviorsand data, unless new objects and data specific in the regionalmanagement metadata definition override the behavior and data in themanager metadata definition. In some embodiments, a national managermetadata definition may inherit from the regional manager metadatadefinition.

In various embodiments, fundamental classes of metadata may be definedas part of the application development platform. These classes mayprovide interfaces to the following platform services:

-   -   Authorization    -   Business Object    -   Business Process    -   User Interface Object    -   Services    -   Integration    -   Submission Definition

Authorization metadata may provide an interface to a platform securitysystem. The security system may provide functions for defining logins,users, user groups, roles, views, and/or the login system.

User metadata may define a profile of a user. In addition to providingsecurity and authorization information, such as password, roles, and/orgroup membership, the user profile may comprise contact information,user preference information, and/or information about what methods theuser is allowed to use to login (e.g., the platform may allow multipletypes of logins, such as web login and e-mail login). For security, avariety of authentication methods may be provided, including timesensitive encrypted e-mail content for authentication of an e-mail uponreceiving an e-mail.

Contact information for a user may include an e-mail address and mayinclude other information, such as multiple phone numbers (e.g., officeor cell), office number, business address, and home address.

In some embodiments, a user may be part of multiple user groups and mayhave multiple assigned roles. If a user is a member of more than oneuser group, then one of the groups may be defined as the user's mainuser group. If a user has more than one role assigned, then one of theroles may be defined as the user's main role. In some embodiments, ametadata manager determines various default behaviors of an applicationthat may be associated with a particular role or user group. The defaultbehavior of the application may support the user's primary role andgroup activities as the user's main activities, while providing accessto features and actions the user is allowed via secondary roles andgroups. In various embodiments, every user has at least one role, evenif it is an administrator role.

A user group may comprise a group of users. In some embodiments, usersmay be a member of one or more user groups. By assigning permissions androles to a user group, permissions and roles may be assigned to all ofthe users in the group.

User groups may be nested, allowing user groups to be in a user group.This may allow larger scale administration by collecting groups alongorganizational structure or administrative needs. A group can be amember of any number of user groups. In some embodiments, circularreferences may be allowed. In other embodiments, circular references arenot allowed.

One reason for allowing nested user groups and multiple user groupmembership is because of the proliferation of matrix management andmulti-function teams. Within an organization, an employee may be part ofmultiple functional teams and needs to have the permissions and rolesassociated with all teams that they are a part of.

A permission object may be used to specify what a user or a user groupis allowed to do. A permission assigned to a user group may apply toone, some, or all users in that group. In some embodiments, a permissionapplied directly to a user may override conflicting permission assignedto that user's group. A permission applied to a child group that is amember of a parent group may override for that child group conflictingpermission assigned to the parent group. A user's permissions may be theleast restrictive union of all permissions assigned to the user directlyor any group of which the user is a member.

In some examples, permissions may apply to business object access,service access, and/or view access. Business object access may specifycreate, read, write, and delete access for a business object. In oneexample, a sales person may have permission to fully access a customerbusiness object. A product manager may be able to read and write thecustomer business object, but may not create a new customer businessobject or delete an existing customer business object.

Service access may specify what services a user can use and the level ofuse allowed. As the platform is developed out, additional services canbe used in an application. Services may include, but are not limited to:

-   -   Internal E-Mail: The ability to send an e-mail to users or user        groups.    -   External E-Mail: The ability to send an e-mail to any number of        people that externally accessed the system, such as proposal        submitters. This type of service may have different levels of        access, such as being able to send one e-mail at a time versus a        blast to every submitter.    -   Calendar: The ability to access and modify a calendar. This type        of service may have different levels of access, such as view        only access versus the ability to create, delete, or modify        calendar events.

View access may specify what pages a user can see (view) and access.Those skilled in the art will appreciate that even if a user can view apage, there may be capabilities on the page that cannot be used due tobusiness object access and service access. For example, only peopleinvolved with finance or a need to know about the financial informationin a company may be allowed to look at and change budget pages. As anaccounting control, the accounting department may have the ability tomake changes to the budget. The CEO may have view access to read thebudget but not make changes.

A role is a collection of permissions. When a role is assigned to a useror a user group, permissions associated with the role may be assigned tothe user or user group. If a permission is removed from a role, then thepermission may be removed from the users or user groups that the rolehas been assigned to (if they had obtained the permission only from thatrole). Any number of roles may be assigned to a user or user group.Roles may be nested or not nested. A role may be associated with one ormore parent roles. In some embodiments, there may be circular roles. Inother embodiments, there may be not any circular roles. Roles may be anadministrative construct to allow collections of permissions to begrouped and managed.

Those skilled in the art will appreciate that there may be many reasonsfor the nesting restriction of many children to one parent role,including, but not limited to:

-   -   With the use of user groups, any effective role and permission        relationship can be created by assigning a role to a user group        and nesting user groups.    -   Roles need to be thought out very carefully, as they provide        easier permission setting, and having nested roles can make it        too easy to create permission structures that are not well        understood.    -   Having both nested groups and nested roles is too complex.        One example of a role is an Administrator role. A user with an        Administrator role may have rights to access all objects. In        another example, within the constructs of a typical business        organization, a Financial role may provide visibility into        financial business objects and be assigned to a Accounting user        group as well as a ExecutiveManagement user group.

In some embodiments, every role may have an associated workspaceconfiguration. For example, when a user executes an application under aspecific role, the user may view a home page associated with a workspaceconfiguration associated with that. For example, if a user has afinancial role and logs into an application as that financial role, thena financial role workspace may be the home page of that login.

In various embodiments, workspaces are effectively user interfaceobjects that may provide a user interface entry point of the applicationfor a user and encompass multiple user interface forms, dashboards,hierarchy trees, and user interface objects. Workspaces may have an areafor notification alerts, so that a user in that workspace is aware ofwork to complete or important messages. In some embodiments, theworkplace roles are separated from permission-collection roles.

In some embodiments, every user may have a personal workspaceindependent of what roles they have. A user's personal workspace may becustomized for each user. If a customized personal workspace has notbeen defined for a user, then a default personal workspace may be theworkspace for the user's main role.

Many users may have multiple roles and a user may access and/or viewinformation across roles. For example, a CEO may have a sales role and afinancial role. The CEO may wish to view sales numbers and budgetinformation every time he logs in. The CEO's personal workspace may havesales report information and budget report information.

The metadata manager, business rule manager, inbound communicationsmanager, and server side scripts/logic 208 are further described herein.The web browser rendering 212 may be performed on the user device. Forexample, a presentation manager (further described herein) may requestinformation from a user by providing an interface that is rendered onthe user's web browser.

FIG. 3 is an exemplary business server 102 in some embodiments. Thebusiness server 102 and/or the provider server 104 may comprise abusiness object manager 302, a metadata manager 304, an inboundcommunication manager 306, a business rule manager 308, a presentationmanager 310, and a database 312. Those skilled in the art willappreciate that all or some of the components in FIG. 3 may be performedby any digital device.

The business object manager 302 may manage creation, reading, updating,and deleting business objects. Business objects are described usingmetadata that may be managed by the metadata manager 304. Businessobjects provide an arbitrarily complex object-oriented description ofinformation. In one example, the business object manager 302 stores andretrieves business objects and/or business object information in arelational database system (e.g., database 312).

The business object manager 302 may provide for query capability to readand update lists of business objects based on conditional expressionsfor matching business object attribute values.

Further, the business object manager 302 may interact with the metadatamanager 304 to obtain metadata definitions for business objects. Thebusiness object manager 302 may manage the business objects according tothe metadata definitions.

In various embodiments, business information that is stored and trackedwithin a deployment may be created as a business object. In someembodiments, the power of business objects may be realized when themetadata features (as described herein) are used to create complexbusiness object information models. In one example, by using the containreference, inheritance, document/media object attachment, and dataversioning features, rich and complex information models may be created.Business objects may comprise an instance ID that is unique if combinedwith the metadata type and metadata name information for the metadatathat defines the particular business object.

Expected primitive types may be supported as fields of a businessobject. The following is an exemplary list of primitive types:

-   -   Character String    -   Binary String    -   Integer    -   Floating Point Decimal Number    -   Fixed Point Decimal Number    -   Boolean    -   Date    -   Time    -   Date/Time    -   Currency    -   Enumerated: Allows one value out of a set of string values. This        will typically be used to represent state values.    -   Any Business Object Type as reference or contained    -   List of any of the above types

Business object fields may comprise names, field types, and data types.Additional information may be stored about a field to support functionaluses of a field. An example of a functional use of a field is how afield can be used in a report, such as whether or not grouping can bedone by this type of field. Using the above field primitives,specifications and metadata features, rich hierarchical businessinformation models with rich media content may be created.

In some embodiments, the business object manager 302 provides users theability to access information. User interface and process objects mayuse the business object query capability to access a business objectinformation model.

In some embodiments, the business object manager 302 may support avariety of queries including, but not limited to, ordered list query,ordered join query, business object union query, single business objectquery, single business object join query, and/or stored procedure callquery. An ordered list query may returns a list of business objectsusing field sorting and filter information to determine which businessobjects are returned in the list and the ordering of the businessobjects.

The ordered join query may return a set of records which are determinedby a join of multiple business objects using field sorting and filterinformation to determine which business object's records are in the joinresult set and the ordering of the records. In some embodiments, arequirement of the join is that there may be a field in the firstbusiness object that identifies specific instances of the secondbusiness object. In one example, there may be a query of proposalswithin a specific department, restricted to a size of less than $100,000cost or less. Proposals may be one business object, Departments may beanother business object, and the field filter on the Proposal objectsmay specify that the Cost field was less than or equal to $100,000.

The business object union query may returns a union of business objectswhich are determined by the effective union query of similar businessobjects, which may be an SQL union query against multiple tables. Insome embodiments, the business object types in a union query may havethe same or similar fields, but where multiple types of business objectsare dissimilar with respect to some fields, NULL field values may beused to make the query result consistent for all objects returned by thequery. Further, scripting language (e.g., metadata manager, businessrule manager, inbound communications manager; server-side scripts/logic208) may be able to use a list of polymorphic (variant) structures tocontain the resultant list of objects, where the type is “queryable” foran element of the list and the valid fields for an element of the listcorrespond to the type.

A single business object query may return a single business object basedon field sorting and filter information. If more than one businessobject meets the filter and sorting criteria, then the first businessobject obtained may be returned. The single business object join querymay return a single record determined by an effective join of multiplebusiness objects and based on the field sorting and filter information.If more than one business objects meet the filter and sorting criteria,then the first business object obtained may be returned.

The stored procedure call query may execute a stored procedure call thatmay be defined in a database. This ability may allow the execution of anSQL query against the database.

The metadata manager 304 may manage configuration language of a softwaresystem. The configuration language may be used to describe security,data structures, user interface layout, data display, interactive userinterface page-flow, and/or work-flow in the system. The configurationlanguage may describe all or some aspects of the system as well asrelationships, visibility, roles, and privileges across different partsof the system.

The metadata manager 304 may keep track of entity descriptions,relationships, access, visibility, privileges, and changes to andversions of configuration information. The metadata manage 304 may alsostore and/or retrieve metadata information in a relational databasesystem (e.g., database 312). In some embodiments, the metadata manager304 may generate, modify, provide, or remove, the following metadataconstructs:

-   -   Authorization: Metadata for the security system including the        following:        -   User Authorization: Metadata for defining users of the            system.        -   Group Authorization: Metadata for defining groups of users            of the system.        -   Permission Authorization: Metadata for permissions that            users and groups can have in the system.        -   Role Authorization: Metadata for groups of permissions that            can be assigned to users and groups in the system.    -   Business Object: Metadata for hierarchical data structures        managed by the business object manager 308.    -   Business Process: Metadata for processes and actions managed by        the business rule manager 308.    -   User Interface Object: Metadata for user interfaces managed by        the presentation manager 310.    -   Services: Metadata for services managed by the business rule        manager 308.    -   Submission Definition: Metadata defining the input user        interfaces and data collection managed by the inbound        communication manager 306.        In some embodiments, the metadata manager 304 supports login        controlling metadata to specify timeout information and        expiration of cookie information for remembering logins from a        specific internet browser.

When working with some types of data objects corresponding to metadatadefinitions, versions of data objects may be created. For example, aversion may be created when the data of an object is modified and/orwhen the data is committed to the database. The created version may beused to specify if the modified data creates a new version of the objector if it completely replaces the previous object. Different versions ofan object may be used to access and/or query older or newer objects. Insome embodiments, one or more versions of an object may be deleted.Those skilled in the art will appreciate that when an old version isread and modified, the old version may not be modified but rather a newversion of the object with modifications may be created.

In one example, a system may modify a proposal through a review or asubmission process. Each time a reviewer or submitter modifies andcommits the modifications of the proposal, a new version may be created,but the previous versions may be preserved and can be accessed. This maybe needed for either keeping a historical record of changes to aproposal or for the ability to undo and redo changes to a proposal.

In various embodiments, tracking of a field or an entire type of objectcan be activated using an attribute flag for the entire object type or aspecific field with the object type. When a user modifies or a process(such as a trigger) modifies an object or field that is specified to betracked, a new entry may be added to an automatically created historytracking table. The entry may describe the object or the specific fieldof the object. For example, the entry may include the time of thechange, what changed the information, the type of change that occurred,and/or the specifics of the change. In some embodiments, the dataversioning feature may be used to track specific values that changed,the history tracking feature may track time, the identifier of theindividual who made the change, the type of change, and/or the actualcontent changes at the value level.

In various embodiments, a service may comprise a base set of metadatadefinitions, business objects, and/or business rules may be generated(e.g., by the service provider 104). The service may be provided to aplurality of clients (e.g., business servers 102). Each client may alterthe metadata definitions, business objects, and/or business rules. Forexample, a first client may not alter the metadata definitions, businessobjects, and/or business rules, while a second client may add a requestfor additional information (i.e., a fax number). A third client may alsoalter or add a business rule. Each change or addition may create a newversion of a metadata definition, business object, and/or business rulewhich may be tracked. As a result, many different clients may use afoundational metadata-configurable system and make controlledmodifications.

If the foundation metadata-configurable system is subsequently alteredor updated, the system provider 104 may compare the proposed change toeach different system and the version changes. As a result, individualaction may be taken to correct incompatibilities before the change tothe foundation system is effected. In the example above, if a newmetadata definition, business object, and/or business rule is added todefine a fax number, the change may conflict with the second client whoalready customized their solution to include a fax number. Since theversions of the metadata definitions, business objects, and/or businessrules are tracked, this possible problem may be identified and theclient contacted before a change is made. Alternately or in addition,changes may be provided to other clients who do not have a conflict.

In some embodiments, the metadata manager 304 may support localizationwhere text is displayed (e.g., user interface displays and errordisplays). Localized versions of display text may be isolated in themetadata or in external resource files so that they are easy to find andlocalize. In one example, localized version of metadata may be accessedbased on either default web browser language settings, by explicitlanguage settings by a user through the browser, and/or for a user by anapplication administrator.

Those skilled in the art will appreciate that localization may allow forcascading dictionaries or lexicons so that a particular customer mayaccess appropriate regional variations as well as company-specificvariations. When a localized string cannot be found at one level, themetadata manager 304 may go to the next level for the translations. Insome embodiments, the metadata manager 304 may be configured to defaultto a main language such as English or German.

Text labels may be used to characterize a field in a user interfaced. Acanonical display text may be used that cannot be changed by a client.The canonical display text may be associated with a displayable textfield that is customizable and subsequently stored.

The implementation of canonical display text may provide a commandshortcut that turns on canonical text display for support situations. Inone example, a support engineer can look at a deployment and identifythe controls and various displayed text by looking at the canonicaldisplay text. In some embodiments, the canonical display text isdisplayed in “help” bubbles or in some way that does not occlude thecustomized text, such that the customized text is still visible at thesame time.

Since metadata definitions can be changed and pushed to the metadata anddata storage 202, the metadata manager may manage a versioningmechanism. In one example, the metadata manger may identify and trackoriginal metadata definitions that may be in a particular deployment,determine if any of the metadata has been changed, and determine whatversion of a metadata definition may be currently in use. The metadatamanager may use the GUID and version information to identify a metadatadefinition and changes to metadata definitions. For example, every timea metadata definition is changed, version information may be changed touniquely identify the new definition (even though the definition mayretain the type, name, and GUID). When a change to metadata is made thatcauses the external version to be modified, the previous version of themetadata definition may be archived in a data structure (e.g., specificdatabase table) so that the original metadata definitions may be used todetermine the differences between the old and the new definitions. Sincethe GUID may not changes, the old metadata definitions may be found viathe GUID.

In some embodiments, the internal or external version may be a simpleinteger or value that may be changed such that the new value can be usedto differentiate the previous value from the newer value. In oneexample, if a simple integer is used for the external version, then theexternal version may be incremented for each subsequent new versioncreated. Those skilled in the art will appreciate that when a metadatadefinition is modified, the associated data may change, as themodifications may define new data for an object corresponding to themetadata definition, and the view may change, as there may be newsecurity or access for the new definition.

The inbound communication manager 306 may handle inbound communicationsinformation gathering from submitters. For example, the inboundcommunication manager 306 may manage information received from a userinterface, forms received via a web server, information received fromthe forms, updated forms, or the like. In some embodiments, any form ofelectronic data transfer of information is a valid form of data that maybe gathered. The inbound communication manager 306 may use, but is notlimited to, the following information gathering methods:

-   -   Web-based submission portal    -   E-Mail    -   File Transfer Protocol (FTP)    -   Hand-held scanner    -   FAX    -   Cell Phone Short Message System (SMS)    -   Touch-tone phone    -   Spreadsheet    -   Word processing document    -   Postscript Display Format (PDF) document    -   Web services

In various embodiments, the inbound communication manager 306 may definespecific proprietary formats and allow industry standard formats forother following data collection methods as well as any other methodsthat may be implemented, including, but not limited to:

-   -   E-Mail    -   File Transfer Protocol (FTP)    -   Hand-held scanner    -   FAX    -   Cell Phone Short Message System (SMS)    -   Touch-tone phone    -   Spreadsheet    -   Word processing document    -   Postscript Display Format (PDF) document    -   Web services

In various embodiments, the metadata managed by the metadata manager 304may describe the type of data handled by the inbound communicationmanager 306, how the inbound communication manager 306 collects thedata, and what business objects the inbound communications managercreates. After collecting data, the business object manager 302 maycreate business objects representing the data collected. Thepresentation manger 310 may provide user interfaces, such as theweb-based submission portal.

The business rule manager 308 may manage scheduling services, messagingservices, notification services, web services, and any service requiredfor work-flow automation, automated response to communications, andintegration with other software systems. The business rule manager 308may determine when to use services and what to do with the servicesusing the metadata managed by the metadata manager 304. The businessrule manager 308 may access business object information via the businessobject manager 302 for use by the services. The business rule manager308 may provide, but is not limited to, the following services andprocesses:

-   -   Methods that implement formulas using business object        information.    -   Methods that execute sets of actions based on conditional        business object values.    -   Execution of scripting languages.    -   Web service calls.    -   Data integration services for integration with 3^(rd)-party        applications.    -   Import and export services to a variety of data formats, such as        spreadsheets.    -   Notifications and alerts through user interfaces, e-mail, and        other communication methods; Creates an alert or notification.        Notifications can use business object information and formula        method results as part of their creation.    -   Scheduling services for scheduling recurring or single alerts        and notifications based on both time schedules and conditional        expressions from business object information. May be used to        schedule recurring or single alerts and notifications based on        both time schedules and conditional expressions from business        object information. Should allow specification of days of week,        days of month, days of quarter, etc. Allows deletion and        modification of scheduled items.    -   Calendar: Provides a calendar user interface for creating,        viewing, and modifying scheduled items.    -   E-Mail services for sending of e-mail to a user, a submitter, or        any e-mail address. May allow the sending of e-mail to a user, a        submitter, or any e-mail address. The e-mail can contain        business object information and formula method results and        e-mail addresses can be obtained from any data object in the        system. It should be noted that if an e-mail contains a URL that        uses a browser to login, for security purposes, the browser will        need to prompt for username and password or will need to have        the login credentials stored as an encrypted time-sensitive        cookie.    -   E-Mail blast services for sending of e-mail to a group or all        users, a group or all submitters, or a list of e-mail addresses.        May allow the sending of e-mail to a group or all users, a group        or all submitters, or a list of e-mail addresses. The e-mail can        contain business object information and formula method results        and e-mail addresses can be obtained from any data object in the        system.    -   Data cleansing services for data de-duplication for names,        addresses, and contact information.    -   Geo-location services for zip code lookup and verification for        addresses and the ability to determine specific information for        one or more zip codes, for address verification, and for GPS        coordinate lookup    -   Tax ID verification services for verification of a tax ID for a        specific person or organization.    -   Chat/IM services to allow users or submitters to chat/IM with        each other.

The business rule manager 308 may manipulate business object informationand create business rules that effect change in business objectinformation, the deployment of the system, and in other applications.The business rule manager 308 may modify business object information andexecute application behaviors based on conditions and events.

In various embodiments, formula methods describe algorithms to calculateresultant values from business object fields, which can be assigned backto business object fields. Exemplary formula methods include, but arenot limited to:

-   -   Algebraic Formula Methods—Describes a formula using field        references and algebraic notation to calculate a value.    -   Script Formula Methods—Use a scripting language (such as JScript        or Javascript) to implement the formula method.    -   External Library Formula Methods—Calls methods in an external        library to execute the formula. Business object field values are        passed in as parameters and business object field values are set        from the returned result of the call.    -   Web Service Formula Methods—Calls a web service to execute the        formula. Business object field values are passed in as        parameters and business object field values are set from the        returned result of the call.

Action methods of the business rule manager 308 may specify operationsto manipulate business objects and affect application behavior.Exemplary action methods may include, but are not limited to:

-   -   Create Business Object—Creates business objects and assigns        values to fields using the business object type and initial        field values as input.    -   Copy Business Object—Given a business object as input, creates a        new business object that has all of the same content, but a        different instance ID.    -   Modify Business Object—Assigns values to business object fields.    -   Delete Business Object—Deletes business objects.    -   Service Call—Calls or uses a service with data values taken from        business objects.    -   Notification Alert—Creates a notification alert for users or        groups with data values taken from business objects.    -   Script Action Methods—Use a scripting language (such as JScript        or Javascript) to implement the action method.    -   External Library Action Methods—Calls methods in external        libraries, passing parameter values from business objects.    -   Web Service Action Methods—Calls web services, passing parameter        values from business objects.

Business rule manager 308 execution conditions may be logicalexpressions that can be formed from business object field values,formula calculation results, and/or queries that return a single value.In some embodiments, conditions can be referenced where a condition isrequired.

Business rule manager 308 execution events may be specified in abusiness object metadata and may describe what formula or action methodsshould be executed if a condition is met at the time of the followingevents on the business object. A scripting language (such as JScript orJavascript) can be used to implement a method. Exemplary executionevents may include, but are not limited to:

-   -   Business Object Create Event: After a business object is        created.    -   Business Object Load Event: After a business object is loaded.    -   Business Object Save Event: Before a business object is saved.    -   Business Object Deletion Event: Before a business object is        deleted.    -   Business Object Field Modification Event: After a specific        business object field is modified.    -   Business Object Modification Event: After any part of a business        object is modified.

External DLLs may be attached and used to execute external librarycalls, as mentioned in the formula and action methods descriptions. Thismay allow the use of library-based APIs and other external functions.

As described in the description of formula and action methods and framemetadata, web services may be an integration method for accessing webservice APIs, web service functions, and for displaying HTML, etc., viaweb services.

Adapters may provide the ability to access external databases asbusiness objects. In some embodiments, there are 2 methods for adaptersto access the data, including but not limited to:

-   -   Real-Time Query: When the business object is accessed, the SQL        queries for accessing the business object are executing,        populating the business object in real-time.    -   ETL Query: A business object cache for the external data is        refreshed based on a specified refresh time. At the refresh        time, the external database is queried and the resultant        business objects are cached.

An API allowing typical programming languages, such as Java, C and C#,may provide access to metadata, object information, and queries. The APImay also allow developers to create new features that are compliant tometadata and services APIs.

In various embodiments, the business rule manager 308 may import andexport data to populate the object entities defined by the metadata.This may allow the initialization of business objects and user interfaceobjects or may allow the ability to snapshot an entire application stateand the restoration of that application state.

In some embodiments, in the case where there is a relational databasetable for a business object with many (e.g., millions) rows, a newcolumn may be added to support a new business object attribute. If thecolumn is populated with NULL values and the logic in the system getsthe default value from the metadata if the column is NULL, then theupdate of the table may be very fast. Of course, if the table issmaller, the system may populate the new column with the default value.

In addition to proprietary or basic import/export formats, the followingexemplary, including but not limited to, import/export formats may besupported:

-   -   Excel Spreadsheet    -   CSV Files    -   Character-Delimited Value Files

The following include, but is not limited to, exemplary services thatmay be provided by the business rule manager 308:

-   -   The following general capabilities between any type of location        specification that can be handled by the service:        -   Distance between locations.        -   Demographic information for locations.        -   Determination if a location is a PO Box or not.    -   Tax ID Verification: Provides verification of a tax ID for a        specific person or organization. Can be used to determine the        charitable status, such as 501c3 status, of a tax ID.    -   Outlook Integration: Provides the ability to create scheduled        items in Outlook and use Outlook e-mail groups and address book        entries.    -   Data Collection: Ability to receive data, such as submissions,        through many data interfaces, such as FTP and direct web service        calls initiated by other systems.

For example, the business rule manager 308 may send requests forinformation using notifications, e-mail, web services, or any other modeof communication to any source that can respond to the requests. Therequests and the conditions to trigger the requests may be specified viametadata definitions using action methods, formula methods, or any otherconditional trigger mechanism provided in the business rule manager 308.These requests may be sent to multiple sources for response in parallelor as independent serial requests. The conditions that can trigger theserequests may include, but are not limited to, time and date, any datacondition within any business object, any user interface gesture,programmatic scripts defined in the metadata, and/or any condition thatcan be defined in the metadata.

The presentation manager 310 may provide interactive web-based userinterface layout management and control. In some embodiments, thepresentation manager 310 may use metadata managed by the metadatamanager 304 to describe the layout and features of web-based userinterfaces. As part of the user interface presentation, the presentationmanager 310 may read and execute instructions of page-flow metadata thatdescribes what new user interface pages are to be displayed based on thestate of the user interface. The presentation manager 310 may provide,but is not limited to, using the following user interface controls:

1. Form

-   -   A form represents a user interface page.

2. Frame control

-   -   Frame controls can be used as follows:        -   a. Provides grouping of any other type of control, providing            borders, if specified.        -   b. Provides a display area for the result of a displayable            and interactive web service call.

3. Dashboard control

-   -   A dashboard control may provide a grid. Each rectangle in the        grid may contain any user interface control or any groups of        user interface controls.

4. Tree control

-   -   A tree control provides the following:        -   a. Display business object names and field values using any            hierarchy and grouping. Arbitrary label icons and text may            be assigned to individual items or entire groups of objects.        -   b. Display a multi-level parent-child hierarchy, as defined            by the business object information model.

5. Data grid control

-   -   A data grid control contains information about grid size,        position and presentation appearance. There may be attributes        for each column containing information about column title, size,        presentation appearance and the associated business object        field.

6. Toolbar control

-   -   A toolbar control provides text and icon buttons. Each button        contains information about size, position, image and other        presentation appearance. Each button can have a visibility or        state condition. When a toolbar button or menu item is chosen, a        new form may be navigated to, a form may be brought up as a        separate window, or other software instructions may be executed.

7. Chart control

-   -   A chart control provides pie, bar, line and other types of        charts.

8. Other controls

-   -   Other user interface controls, such as menus, buttons,        scrollbars, sliders, gauges, collapsible and expandable        sections, progress bars, radio control buttons, checkboxes, and        other standard user interface controls may be usable.

9. Page-flow

-   -   The presentation manager 310 also provides page-flow management.

The presentation manager 310 may access user interface object metadatadefinitions from the metadata manager 304 and then use the metadatadefinitions to determine what business objects to work with and todetermine the user interface needed to present to users. To work withthe business object information defined by the business object metadata,the presentation manager 310 may interact with the business objectmanager 302.

In various embodiments, form metadata is a specification of how businessobject information may be displayed using user interface displaycontrols and how business object information is worked with as well asmanipulated using user interface controls. Any results from any numberof business object queries may be displayed on forms, allowing fieldsfrom multiple business objects to be displayed and manipulated from aform.

With user interface objects, a method type, the Display Method, inaddition to the Action and Formula Methods described herein, may bedefined as a method that controls the display of information or userinterface controls. Display Methods may be used to show or hide,activate (ungray) or deactivate (gray), and change the displayproperties (color, labels, etc.) of tabs or controls.

In one example, there are 3 types of actions that can be attached to aform for automatic execution based on conditions and formulas specifiedin the form metadata:

-   -   Form Load Methods: Before the form is loaded with business        information, Formula, Action, and Display Methods can be called        to manipulate business objects and application behavior.    -   Form Exit Methods: After a form is exited, Formula, Action, and        Display Methods can be called to manipulate business objects and        application behavior.    -   Condition Methods: Formula, Action, and Display Methods can be        specified to be executed any time conditions of data on a form        are met.        Those skilled in the art will appreciate that there may be any        number of types of actions that can be attached to a form for        automatic execution based on conditions and formulas.

Frame control of the presentation manager 310 may provide control andspecification of a frame control. Frame controls can be used in manyways, including, but not limited to:

-   -   Provides grouping of any other type of control (e.g., providing        a border, if specified).    -   Provides a display area for the result of a displayable and        interactive web service call.

The presentation manager 310 may also comprise automatic businesscontrol which may provide automatic generation of user interfacecontrols and display from business object fields.

In some embodiments, a user may need to generate controls for surveyquestions based on a set of questions stored in a business object. Thetext, type of answer, and valid answers for the questions may be createdas field values in the business object and a display with the questionsmay be automatically generated.

The presentation manager 310 may also perform tree control whichprovides control and specification of a hierarchy tree control. In someexamples, tree control may be used to display business object names andfield values using any hierarchy and grouping. For example, arbitrarylabel icons and text can be assigned to individual items or entiregroups of objects. In another example, the tree control may also be usedto display a multi-level parent child hierarchy, as defined by thebusiness object information model.

In some embodiments, the presentation manager 310 may perform data gridcontrol which may provide control and specification of a grid control.The grid metadata may contain information about grid size, position, andpresentation appearance. Those skilled in the art will appreciate thatthere may be metadata for each column containing information aboutcolumn title, size, presentation appearance and the associated businessobject field.

The presentation manager 310 may provide control and specification of atoolbar control. A toolbar can be horizontal or vertical. A toolbarcontrol may provide text and icon buttons. Each button may containinformation about size, position, image, and other presentationappearance. Each button may also have a visibility or state condition.In one example, when a toolbar button or menu item is chosen, a new formmay be navigated to, a form may be brought up as a separate window, or aformula or action method may be called.

There may be many predefined methods, including but not limited to:

-   -   Exit Application: Exits the application to a non-application        page without logging out.    -   Print: Allows printing of the current page or some part of the        current page.    -   Logout: Logs out of the application.    -   Navigate to Home: Navigates back to the user's initial workspace        page.    -   Navigate Back: Navigates back to the previous page the user was        on.    -   Navigate Forward: After one or more Navigate Back choices,        allows the user to go to a page that was navigated back from.

The presentation manager 310 may provide control and specification of achart control (e.g., control of pie, bar, line charts, or any other kindof chart). Those skilled in the art will appreciate that query andformula method results may be used to populate charts.

FIG. 4 is an exemplary diagram of the relationships among the businessobject manager 302, metadata manager 304, inbound communications manager306, business rule manager 308, presentation manager 310, the relationaldatabase system 312, data adapter 402, the web server 404, and the webbrowser 406 in some embodiments. The data adapter 402 may retrieve andor store information (e.g., business objects, metadata, and the like)within the relational database system 312.

The web server 404 may receive and provide interfaces (e.g., web pages)from the presentation manager 310. The web server 404 may also receiveinformation provided by the user and direct all or part of the receivedinformation to the metadata manager 304, the inbound communicationmanager 306, and/or the business rule manager 308. Those skilled in theart will appreciate that the web server 404 is not limited to a webserver but may be any digital device with or without a server.

The web browser 406 may be resident on any user device. Although FIG. 4depicts information being provided between the web server 404 and theweb browser 406 as being HTML or Javascript, the information (e.g.,responses and/or interfaces) may be formatted in any language.

In some embodiments, a web-based submission portal data collectionsystems and methods of the inbound communication manager 306 may use thepresentation manager 310 to display and manage a user interface. Initialsubmission metadata stored in the relational database system 312 maydescribe what forms and the order the forms should be displayed for asubmitter (e.g., a user) to submit information. The metadata may alsospecify what web page the user may be sent when the submission iscompleted. The submission page-flow may have any number of branches orflow to different pages based on the conditions of the data entered bythe submitter.

In some embodiments, a submitter may revisit a submission. Those skilledin the art will appreciate that the entity using the application andcontrolling the submission portal may allow or disallow revisiting asubmission as well as what, if anything, can be changed by a submitter.

The inbound communication manager 306 may also provide a submissionstatus which provides the submitter the ability to check on a submissionstatus. For example, the inbound communication manager 306 may provideand/or receive messages about a submission to be posed by and forsubmitters.

Those skilled in the art will appreciate that attributes that may beused by other features of the system may be defined and set forsubmission questions. For example, scoring attributes such as thescoring criteria and the scoring weight of the question may be stored asa question attribute. In some embodiments, the metadata manager 304 mayapprove, deny, request additional information, or contact others forapproval based on a business rule and the scoring criteria.

In some embodiments, submitters may be requested to submit answers to asurvey regarding a previous submission. In one example, a use of thisfeature is to get evaluations from submitters for the handling of asubmission, such as the evaluation of a sponsored event. Skins may allowa submission portal to have the look, feel, and imaging of the web siteof the organization using the system.

Questions may be used by both the incoming communications manager(discussed herein) and for questions that are used in other parts ofsystems and methods described herein. The presentation manager 310 mayprovide question editing control. Question editing control may providethe ability to create a set of questions or edit an existing set ofquestions. The control may allow the setting of question text, the typeof answer for each question, valid answers for each question, and theorder of the questions.

Those skilled in the art will appreciate that many other controls, suchas sliders, gauges, and show/hide sliding panels, may be used andspecified via user interface object metadata definitions.

For complex user interface scenarios and situations where very specificuser interface process or data entry process is required, page-flowmetadata may be used to specify user interface and display flow.Page-flow specifications may have any number of branches or flow todifferent pages based on the conditions of the data entered by the user.

The sources receiving the request may provide responses using a methodthat the inbound communication manager 306 may receive communications.Once a response to a request has been received by the inboundcommunication manager 306 and the data received from the response isconverted into a business object, the business rule manager 308 may beused to execute actions based on the information in the business object,including the creation of more requests for information. This generaldynamic data collection ability may be used to create virtually anymulti-step information request and response process.

FIG. 5 is an exemplary screen shot of a report generate graphical userinterface that illustrates how a user may create ad-hoc data reports thesystem in some embodiments. In various embodiments, the system describedherein allows users of the system to create ad-hoc data reports frombusiness object information which can be displayed by the presentationmanager 310 in any user interface.

In some embodiments, the user selects a type of report to create. Thereport type 502 may be linked via metadata to a type of query that willbe run (e.g., by the business object manager 302). New report types maybe added via metadata to be supported by this feature example. When thenew type of report is created in metadata, the report layout, controls,and the underlying query for the report may be defined in the metadata(e.g., by the metadata manager).

When a report type has been selected, the underlying metadata maydictate whether one or two business objects are needed or can be usedfor the query. The appropriate main and secondary business object menusmay be displayed. From the type of report (and its metadata) thesupported business objects may be specified. As a result, in someembodiments, only supported business objects 504 will be listed. If twobusiness objects are needed, a join may be executed across underlyingtables of the business objects and the business object definitions maydictate the join ID to be used. For example, if “Proposals” and“Departments” are used as the two business objects, there may be adepartment reference (department name, ID, or direct object reference)in the “Proposal” business object that may automatically be used to jointhe two business objects.

If the report type requires one or more aggregations, then the type ofeach aggregation (sum, average, etc.) 506 may be selected. In someembodiments, once the type of aggregation is selected, only fields thatsupport that type of aggregation 506 may be selected. The field metadatawithin the business object metadata may be used to specify what types ofaggregations a field can support. If the report requires or allowsgrouping by a field, then the “Group Field” menu 508 may be displayedand only fields that can be used for grouping may be displayed.

The default field filter menu 510 may be used to select a field and theappropriate filter controls may appear to specify the filter conditions.For example, if an integer field is selected, then numeric filtercontrols may be provided. If a string filed is selected, then stringfilter controls may be provided. If the field has specific enumeratedvalues, then the filtering controls may provide a way to include andexclude enumerated values. When default field filter information hasbeen selected, this may become the default for the report that is beingcreated.

When “Preview” 512 is clicked, a report may be generated based on thespecifications. When “Save” 514 is clicked, the report may be saved withthe name specified and the creation window disappears. When “Cancel” 516is clicked, the cancel may be confirmed and the window may close withoutsaving if confirmed.

FIG. 6 is an exemplary screen shot of a report viewing user interface insome embodiments. In various embodiments, a pie chart, bar chart, linechart, list, and crosstab reports, or any other chart or report may besupported by systems and methods described herein. Reports may bedrillable, allowing a cell, column, bar, line, or pie segment to beclicked on to drill down to a sub-report. Those skilled in the art willappreciate that reports and/or charts are printable.

In some embodiments, a user may generate a chart from a list or crosstabreport, where a new tab is created to display and view the chart. Forexample, when a list report or crosstab is viewed, the user may click acreate chart button 304 where a popup (e.g., an AJAX popup) is displayedallowing the selection of the type of chart and the information used todetermine the axis and value in the chart. After the chart attributeshave been selected, a new tab may be created for displaying the chart.Any number of charts can be created, creating more tabs, as necessary.

In some embodiments, a presentation manager may generate a dashboard.The dashboard may be divided into a grid of cells where each cell,called a “tile,” may display reports or any other user interface form,allowing any type of user interface control and layouts of thosecontrols to be put in any tile. Behavior and features of a control, suchas report control drill down, may be available when in a dashboard tile.

In some embodiments, data inputs and display of dashboards tiles maydepend on each other. For example, if a dashboard has two tiles with abar chart in the first tile and a pie chart in the second tiledisplaying data for a specific date range, the date range may be changedfor one of the charts and the chart in the other tile may beautomatically redisplayed to display data for the new date range. Inanother example, a tile may contain a bar chart and another tile maycontain a list of data. When a bar in the bar chart is clicked on by auser, the other tile may list specific data entries that are associatedwith the bar in the bar chart. Those skilled in the art will appreciatethat dashboards are printable and/or may be used as the data reportingfunction within the system, including the ability to paginate printeddashboard output.

To provide a user of the system a method of creating and modifyingmetadata without having to learn the metadata language, there may begraphical editors and tools for metadata creation and modification. Theeditors and tools may be broken into the following general categories:

-   -   User and Role Administration: A GUI administration module for        adding, deleting, and modifying users, roles, and user groups.    -   Business Object Editor: An editor that uses an entity        relationship diagram to define objects and their relationships.        Context menus on the specific entity relationship blocks and the        relationship connectors may be provided to access features for        editing metadata definition fields, attributes, and relationship        information.    -   User Interface Object Editor: An editor providing drag and drop        creation of user interfaces on a layout screen and the ability        access a tree of business object metadata to connect business        object fields and information to the user interface objects.        Context menus on the graphical controls may be used to access        features for specifying control attributes and creating actions.    -   Workflow Editor: An editor for describing workflow.        Conceptually, the editor may allow specific users to be        represented graphically, and ability to group users within a        workflow tier, the ability to specify multiple tiers with        decision branches for which specific parallel tier information        flows to next, and the ability to specify the states that        information can be in and what can be done to the information by        each user within the workflow. One possibility is a block and        arrow diagram where context menus allow modification of the        specifics of what a block represents (i.e. a user or a group of        users), what decisions correspond to a connecting arrow (i.e.        approved or declined), and the actual information that is flowed        through the workflow (i.e. proposal or resume).    -   Submission Portal Editor: An editor for creating and modifying        submission portal information, such as questions and their        attributes, permissions with respect to submissions, such as        messaging capability and re-submission permissions.    -   Dashboard/Report Editor: An editor for the creation of reports        and dashboards, where the dashboard concept is essentially a        grid of reports and forms.

Some specific features and services in the platform may use an editorthat is suited to dealing with the specific feature or service. TheWorkflow Editor and the Dashboard/Report Editor are two examples of thisgeneral concept, as they are editors created to manage and manipulatethe specifics of those particular features and services.

In various embodiments, a master editor may be used to access and/or usevarious editors described herein. The master editor may be accessthrough a master editor user interface to make, for example, applicationcreation, modification, and customization to provide a consistent lookand feel and access method for every type of metadata editor.

Those skilled in the art will appreciate that tools may be created fortransforming metadata, such as a tool to change a metadata containrelationship to a reference relationship.

The foregoing is considered as illustrative only of the principles ofsystems and methods described herein. Further, since numerousmodifications and changes will readily occur to those skilled in theart, it is not desired to limit systems and methods described herein tothe exact construction and operation shown and described, andaccordingly, all suitable modifications and equivalents may be resortedto, falling within the scope of the systems and methods describedherein.

FIG. 7 is a flow diagram of a metadata configurable system in someembodiments. In one example, a user of the user device 106 may wish toprovide a proposal for funding (e.g., a grant) or to receive acharitable donation. An organization may enter into an agreement withthe service provider 104 to provide the metadata configurable systemand/or services. In step 702, a presentation manager 310 provides aninterface requesting information regarding a proposal from a digitaldevice over a network (communication network 108). The presentationmanager 310 may generate the interface (e.g., web page) based oninstructions from the metadata manager 304.

The interface may include questions and requests for information. Therequest may be for a user to create an account, provide a username,provide a password, provide an identifier, or any other information.

In step 704, the presentation device 310 receives the information from adigital device (e.g., user device 106) over a network (e.g.,communication network 108). In step 706, the business object manager 302instantiates a business object based on the received information. Invarious embodiments, applicable business objects are created. Based oninformation received from the user or organization, business objects maybe instantiated and associated with the received information. Thebusiness object may be stored in a data structure such as a relationaldatabase (e.g., database 312) in step 708. The data structure may bestored within a computer readable medium such as a hard drive, solidstate drive, or the like.

In step 710, a business rule manager 308 generates a business ruleassociated with the business object. The business rule may compriseinstructions to perform an operation that is conditional based on theinstantiated business object. For example, the user may provideidentification information as well as information whether the userrepresents a nonprofit organization. The organization which approves ordenies the proposal may create a business rule such that a proposal willbe automatically denied if the user does not represent a nonprofitorganization. In this example, the metadata manager 304, based on thebusiness rule, may instruct the presentation manager 310 to display aninterface indicating that the proposal has been denied. If the userrepresents a nonprofit organization, the metadata manager 304, based onthe business rule, may instruct the presentation manager 310 to displayan interface requesting additional information (e.g., type of proposal,desired funding, and details of the request).

In various embodiments, the organization (e.g., a client of the serviceprovider 104) may create the business rules. The business rules may becreated and/or generated before an interface is provided to the user.Further, the organization accepting or denying the funding may edit andcreate questions or requests for information to be displayed in theinterface. The questions and/or requests for information may be storedas business objects, instantiated business objects and/or metadata.

In step 712, the metadata manager 304 generates metadata associated withthe instantiated business object and stores, in step 714, the generatedmetadata in the computer readable medium. The metadata may describe theinstantiated business object. The metadata, instantiated businessobject, and/or business rules may provide instructions to the metadatamanager 304. For example, the metadata manager 304 may instruct thepresentation manager 310 to display requests for information based oninformation that had been previously received from the user and businessrule(s).

Decisions on the information received may also be automated based on themetadata, instantiated business object, and/or business rule(s). Forexample, based on information received, the metadata manager 304 maydetermine that review and/or approval of the proposal is required. Basedon one or more business rules, the metadata manager 304 may prepare areport and/or interfaces to provide to another user (e.g., anadministrator or other individual) for review and/or approval. Themetadata manger 304 may utilize email, chat, IRC, or any other type ofcommunication to provide sufficient information to the other user andreceive an indication regarding the review or approval. Based on thebusiness rules, the metadata manager 304 may approve, deny, requestadditional approvals from other individuals, request additionalinformation from the user, or perform any other action. The metadatamanager 304 may track the status of the proposal and contact or provideinstructions to contact the user.

In step 716, the metadata manager may perform the operation based on thebusiness rule and the generated metadata. Based on instructions from themetadata manager 304, in step 718 the presentation manager 312 mayprovide a second interface indicating a status of the proposal. Thestatus may indicate that the proposal is denied, approved, pending, orany other status indicator.

In some embodiments, the presentation manager 312 may present aninterface that allows a user or a member of the organization offeringthe proposal to generate a report. In one example, the report maysummarize the information provided for the proposal (e.g., the user, therequesting organization, status of the requesting organization, statusof the proposal, or the desired outcome). If a request to generate areport is made, the requester may provide information regarding thecontent of the report. The business object manager 302 may query thedata structure (e.g., query the XML in a relational database and/orprovide SQL queries) based on the received information to create thereport and retrieve proposal information. The presentation manager maygenerate and/or display report with the desired information retrievedfrom the query.

FIG. 8 is an exemplary screen shot of a user login interface in someembodiments. In various embodiments, a user may access the user logininterface via a web browser. The user login interface may be provided bythe presentation manager. The user login interface may be standardizedfor all users to create a new account and/or provide identification andauthentication information to access the system. Although many interfaceare depicted in FIGS. 8-20, those skilled in the art will appreciatethat the content of the interfaces as well as the metadata thatdescribes user input may be changed and customized.

Those skilled in the art will appreciate that there may be differentways for a user to log in. In one example, a user may log in through theweb interface such as the user login interface. A login may also beaccomplished, for example, via an e-mail send. In one example, e-maillogin may allow the user to submit a proposal directly through an e-mailsend. Another example would be the ability to request a report viae-mail and the report is e-mailed back to the requester.

FIG. 9 is an exemplary screen shot of a template selection interface insome embodiments. The template selection interface may be provided to auser that creates an account. The template selection interface mayprovide information regarding available services and request informationon how the user prefers to proceed. In this example, interfaces 9-20 areutilized provide users the opportunity to submit proposals forphilanthropic funding. Those skilled in the art will appreciate that theinterfaces may be used in any number of ways and collect informationfrom a variety of entities for any number of purposes.

FIG. 10 is an exemplary screen shot of a preliminary questions interfacein some embodiments. The preliminary questions interface may provide theuser with a request for information that may be determinative on whetherthe user should continue providing information (e.g., inputtingadditional information) or whether, based on a few simple facts, theproposal will be denied regardless of the type and quality of additionalinformation.

For example, the template selection interface of FIG. 9 indicated that,in order to qualify to receive philanthropic funding, the user/proposermust be a qualified non-profit or public tax-exempt organization. If theuser/proposer indicates they are not a qualified non-profit orpublic-tax exempt organization, then an exemplary screen shot of aproposal denial in some embodiments (as depicted in FIG. 11A) may beprovided. Alternately, if the user indicates that they are a qualifiednon-profit or public-tax exempt organization, then an exemplary screenshot of another preliminary question (as depicted in FIG. 11B) may beprovided.

FIG. 12 is an exemplary screen shot for selection of a local client sitein some embodiments. In some embodiments, a user submitting the proposalmay receive an interface indicating a zip code or other location whereproposed action may take place. For example, if an organization isrequesting funding for an event, the user may indicate a zip code, areacode, address, or any other location information regarding the event.Once submitted, the business rule manager may perform zip code lookupand verification of the information provided to the interface.

FIG. 13 is an exemplary screen shot for determining a local client sitein some embodiments. Once the user submits location information withinthe interface, the business rule manager 308 may determine the closestbusiness sites. In some embodiments, the facilities of the organizationperforming or fulfilling a proposal may offer use of facilities orrequire that any activities associated with the proposal be conductedwithin a predetermined proximity to a facility. Based on the previouslyprovided location information, the presentation manager 310 may providea map of available locations to the user in an interface to allow theuser to select the preferred location, facility, and/or venue.

FIG. 14 is an exemplary screen shot of a demographic interface in someembodiments. In some embodiments, based on information previouslyreceived, the metadata manager 304 may provide instructions to thepresentation manager 310 to request information regarding demographics.In one example, the requested demographic may be of the beneficiaries ofthe proposal. Those skilled in the art will appreciate that althoughinformation may be requested, the user may have the option to notprovide information, indicate that the information is unknown oruncertain. The metadata manager 304 may apply one or more business rulesfrom the business rule manager 308 to determine next steps (e.g.,continue as if information was received, request additional information,deny the proposal, or indicate that the proposal is pending).

Those skilled in the art will appreciate that the interface generated bythe presentation manager 310 may have any functionality including thosefunctions associated with a web page. For example, any interface mayallow the user to select a position on a map, determine the location ofa user if a GPS is available, buttons, pull down menus, or the like.

FIG. 15 is an exemplary screen shot of a mailbox interface in someembodiments. Proposals and/or other information may be accessible in amailbox used to communicate with one or more individuals. In oneexample, a company may organize events by association with variousbrands. The metadata manager 304 may organize submissions, based on oneor more business rules, into accessible mailboxes. One or moreindividuals may have access to the mailbox and at least some of thesubmitted information. Individuals may also receive communicationsregarding the submissions (e.g., via e-mail or the like).

FIG. 16 is an exemplary screen shot of tax information interface in someembodiments. A tax information interface may request informationregarding the type of organization submitted the proposal as well as atax identification number. In some embodiments, if the user submittedinformation indicates that the organization does not meet aqualification (i.e., the organization is not a 501c3 organization), abusiness rule may dictate that the proposal is denied. In someembodiments, once a tax number (or other information) is provided, thetax identification number may be verified and/or authenticated. Forexample, the metadata manager 304 and/or the business rule manager 308may confirm that the tax identification number if valid and has thecorrect status.

FIG. 17 is an exemplary screen shot of a proposal list interface in someembodiments. The proposal list interface may be generated for a user ofthe organization providing the proposal or services. In one example, aclient may request status of proposals or submissions. The client mayfilter the request by indicating the desired status (e.g., indicatingwhether the listed proposals are approved, automatically declined,manually declined, likely to be declined, under consideration, orassociated with a VIP). The client may filter the information in anynumber of ways. Once the filter(s) are indicated, one or more queries ofthe information stored in the data structure may be performed toretrieve the information.

Once the information is retrieved, the proposal list interface may bedepicted. The interface may organize the information in any number ofways. In some embodiments, the metadata manager 304 may provideinstructions to the presentation manager 310 regarding the rows,columns, and other information indicating generation of the table andorganization of information.

FIG. 18 is an exemplary screen shot of a proposal summary interface insome embodiments. In various embodiments, a client may select (e.g., byclicking on information displayed in the proposal list interface in FIG.17) an item and receive more information. For example, FIG. 18 indicatesthat a client requested more information regarding the proposal providedby the Another Test Organization. The proposal summary interface maydisplay information retrieved from metadata, business objects, and/orinstantiated business objects. For example, metadata may be used topopulate fields regarding the non-profit organization status.Information from an instantiated business object, such as a string ofdata, may be used to provide comments or other content. Those skilled inthe art will appreciate that information from the database may beretrieved and displayed in any number of ways.

FIG. 19 is an exemplary screen shot of a proposal summary reportinterface in some embodiments. The proposal summary report interface mayprovide a high level summary of proposals maintained in a mailbox. Forexample, systems and methods described herein may assess the informationand provide a summary based on any criteria or criterion. In thisexample, the proposals may be broken down into cause relatedpartnership, event and entertainment (non-sports) and financial donationrequest. Different mailboxes may be created to better organize theproposals. The contents of the mailboxes may also be displayed orsummarized for the report. Further, a client may filter the informationregarding status of the proposal such a whether a proposal has beenapproved, declined, or under consideration. Those skilled in the artwill appreciate that the information may be displayed and organized inany number of ways based on filters provided by the client as well asthe metadata, business objects, and instantiated business objects storedin the data structure.

FIG. 20 is an exemplary screen shot of a custom report interface in someembodiments. Those skilled in the art will appreciate that systems andmethods described herein may be customized in any number of ways and maygenerate many kinds of charts and graphs representing informationretained in the data structure. In various embodiments, the organizationof the information may be displayed based on submitter, or any othertype of organization, such as by available resource, past application ofresources, and current commitments.

FIG. 21 is a block diagram of an exemplary digital device 2100. Thedigital device 2100 comprises a processor 2102, a memory system 2104, astorage system 2106, a communication network interface 2108, an I/Ointerface 2110, and a display interface 2112 communicatively coupled toa bus 2114. The processor 2102 is configured to execute executableinstructions (e.g., programs). In some embodiments, the processor 2102comprises circuitry or any processor capable of processing theexecutable instructions.

The memory system 2104 is any memory configured to store data. Someexamples of the memory system 2104 are storage devices, such as RAM orROM. The memory system 2104 can comprise the ram cache. In variousembodiments, data is stored within the memory system 2104. The datawithin the memory system 2104 may be cleared or ultimately transferredto the storage system 2106.

The storage system 2106 is any storage configured to retrieve and storedata. Some examples of the storage system 2106 are flash drives, harddrives, optical drives, and/or magnetic tape. In some embodiments, thedigital device 2100 includes a memory system 2104 in the form of RAM anda storage system 2106 in the form of flash data. Both the memory system2104 and the storage system 2106 comprise computer readable media whichmay store instructions or programs that are executable by a computerprocessor including the processor 2102.

The communication network interface (com. network interface) 2108 can becoupled to a network (e.g., communication network 108) via the link2116. The communication network interface 2108 may support communicationover an Ethernet connection, a serial connection, a parallel connection,or an ATA connection, for example. The communication network interface2108 may also support wireless communication (e.g., 802.11a/b/g/n,WiMax). It will be apparent to those skilled in the art that thecommunication network interface 2108 can support many wired and wirelessstandards.

The optional input/output (I/O) interface 2110 is any device thatreceives input from the user and output data. The optional displayinterface 2112 is any device that is configured to output graphics anddata to a display. In one example, the display interface 2112 is agraphics adapter. It will be appreciated that not all digital devices2100 comprise either the I/O interface 2110 or the display interface2112.

The above-described functions and components can be comprised ofinstructions that are stored on a storage medium such as a computerreadable medium. The instructions can be retrieved and executed by aprocessor. Some examples of instructions are software, program code, andfirmware. Some examples of storage medium are memory devices, tape,disks, integrated circuits, and servers. The instructions areoperational when executed by the processor to direct the processor tooperate in accord with embodiments of the present invention. Thoseskilled in the art are familiar with instructions, processor(s), andstorage medium.

The present invention is described above with reference to exemplaryembodiments. It will be apparent to those skilled in the art thatvarious modifications may be made and other embodiments can be usedwithout departing from the broader scope of the present invention.Therefore, these and other variations upon the exemplary embodiments areintended to be covered by the present invention.

The invention claimed is:
 1. A system comprising: a processor; memory; apresentation manager configured to control the processor to receivefirst information regarding a pending agreement from a digital device,at least a portion of the presentation manager being in the memory; abusiness object manager configured to control the processor toinstantiate a first business object based on the received firstinformation and to store the first business object within a datastructure residing in a computer readable medium; a metadata managerconfigured to control the processor to retrieve first metadataassociated with the first business object; and a business rule managerconfigured to control the processor to identify and retrieve a firstbusiness rule from a plurality of business rules based on the firstmetadata, the first business rule comprising instructions to perform anoperation that is conditional on the first business object, the businessrule manager further configured to control the processor to: determinewhether a first condition is satisfied by the first business object,determine a status of the pending agreement based on the determinationwhether the first condition is satisfied, and instruct the presentationmanager to provide the status of the pending agreement to the digitaldevice.
 2. The system of claim 1, wherein the business rule manager isfurther configured to control the processor to determine whetheradditional information is required based on the first business rule, andthe presentation manager is further configured to control the processorto provide a request for additional information based on a determinationby the business rule manager that the additional information isrequired.
 3. The system of claim 2, wherein the business object manageris further configured to control the processor to instantiate a secondbusiness object based on received second information associated with therequest for the additional information, the metadata manager is furtherconfigured to control the processor to retrieve second metadataassociated with the second business object, and the business rulemanager is further configured to control the processor to determinewhether a second condition is satisfied by the second business objectbased on a second business rule of the plurality of business rules. 4.The system of claim 3, wherein if the second condition is satisfied, thebusiness rule manager is further configured to control the processor todetermine whether third information is required based on the secondbusiness rule.
 5. The system of claim 4, wherein the business rulemanager is further configured to control the processor to redeterminethe status of the pending agreement based on the determination whetherthe first condition is satisfied and the determination whether thesecond condition is satisfied.
 6. The system of claim 4, wherein thebusiness rule manager is further configured to control the processor toredetermine the status of the pending agreement based on thedetermination whether the second condition is satisfied.
 7. The systemof claim 6, wherein the presentation manager is further configured tocontrol the processor to provide an updated status of the pendingagreement based on the redetermination.
 8. The system of claim 1,wherein the metadata manager is further configured to control theprocessor to contact a second digital device to request approval of thepending agreement.
 9. The system of claim 1, wherein the status of thepending agreement indicates if the pending agreement is denied,accepted, or pending.
 10. The system of claim 1, wherein thepresentation manager is further configured to control the processor toreceive first pending agreement information to create a report regardingthe pending agreement.
 11. The system of claim 10, wherein the businessobject manager is further configured to control the processor to querythe data structure based on the received first pending agreementinformation and retrieve second pending agreement information to createthe report.
 12. The system of claim 11, wherein the business rulemanager is further configured to control the processor to direct thepresentation manager to display the report.
 13. The system of claim 12,wherein the report depicts a summary of the status of the pendingagreement and at least a portion of other reports that were retrieved asa result of the query by the business object manager.
 14. The system ofclaim 11, wherein the business object manager further configured tocontrol the processor to query the data structure comprises the businessobject manager configured to control the processor to find a particularbusiness object using a conditional query and to query contents of thefound particular business object.
 15. The system of claim 1, wherein thedata structure is a relational database.
 16. A method comprising:receiving first information regarding a pending agreement from a digitaldevice; instantiating a first business object based on the receivedfirst information; storing the first business object within a datastructure residing in a computer readable medium; retrieving firstmetadata associated with the first business object; identifying andretrieving a first business rule from a plurality of business rulesbased on the first metadata, the first business rule comprisinginstructions to perform an operation that is conditional based on thefirst business object; determining whether a first condition issatisfied by the first business object; determining a status of thepending agreement based on the determination whether the first conditionis satisfied; and providing the status of the pending agreement to thedigital device.
 17. The method of claim 16, further comprising: if thefirst condition is satisfied, determining whether additional informationis required based on the first business rule; providing a request forthe additional information; receiving second information associated withthe request for the additional information; instantiating a secondbusiness object based on the received second information; retrievingsecond metadata associated with the second business object; identifyingand retrieving a second business rule from the plurality of businessrules based on the second metadata; determining whether a secondcondition is satisfied by the second business object based on the secondbusiness rule; determining an updated status of the pending agreementbased on the determination whether the first condition is satisfied andthe determination whether the second condition is satisfied; andproviding the updated status of the pending agreement to the digitaldevice.
 18. The method of claim 17, wherein determining the updatedstatus of the pending agreement based on the determination whether thefirst condition is satisfied and the determination whether the secondcondition is satisfied comprises redetermining the status of the pendingagreement.
 19. The method of claim 16, wherein the status of the pendingagreement indicates if the pending agreement is denied, accepted, orpending.
 20. A non-transitory computer readable medium comprisingexecutable instructions, the executable instructions being executable bya processor to perform a method, the method comprising: receiving firstinformation regarding a pending agreement from a digital device;instantiating a first business object based on the received firstinformation; storing the first business object within a data structureresiding in a computer readable medium; retrieving first metadataassociated with the first business object; identifying and retrieving afirst business rule from a plurality of business rules based on thefirst metadata, the first business rule comprising instructions toperform an operation that is conditional based on the first businessobject; determining whether a first condition is satisfied by the firstbusiness object; determining a status of the pending agreement based onthe determination whether the first condition is satisfied; andproviding the status of the pending agreement to the digital device. 21.The non-transitory computer readable medium of claim 20, wherein themethod further comprises determining whether additional information isrequired based on the first business rule and providing a request foradditional information based on a determination that the additionalinformation is required.
 22. The non-transitory computer readable mediumof claim 21, wherein the method further comprises: instantiating asecond business object based on received second information associatedwith the request for the additional information; retrieving secondmetadata associated with the second business object; and determiningwhether a second condition is satisfied by the second business objectbased on a second business rule of the plurality of business rules. 23.The non-transitory computer readable medium of claim 22, wherein themethod further comprises, if the second condition is satisfied,determining whether third information is required based on the secondbusiness rule.
 24. The non-transitory computer readable medium of claim23, wherein the method further comprises redetermining the status of thepending agreement based on the determination whether the first conditionis satisfied and the determination whether the second condition issatisfied.
 25. The non-transitory computer readable medium of claim 23,wherein the method further comprises redetermining the status of thepending agreement based on the determination whether the secondcondition is satisfied.
 26. The non-transitory computer readable mediumof claim 25, wherein the method further comprises providing an updatedstatus of the pending agreement based on the redetermination.
 27. Thenon-transitory computer readable medium of claim 20, wherein the methodfurther comprises contacting a second digital device to request approvalof the pending agreement.
 28. The non-transitory computer readablemedium of claim 20, wherein the status of the pending agreementindicates if the pending agreement is denied, accepted, or pending. 29.The non-transitory computer readable medium of claim 20, wherein themethod further comprises receiving first pending agreement informationto create a report regarding the pending agreement.
 30. Thenon-transitory computer readable medium of claim 29, wherein the methodfurther comprises querying the data structure based on the receivedfirst pending agreement information and retrieving second pendingagreement information to create the report.
 31. The non-transitorycomputer readable medium of claim 30, wherein the method furthercomprises displaying the report.
 32. The non-transitory computerreadable medium of claim 31, wherein the report depicts a summary of thestatus of the pending agreement and at least a portion of other reportsthat were retrieved as a result of the query.